/* 作为自定义的generator，npm模块的入口文件 */
/*
需要导出一个继承于yeoman-generator的类型
yeoman-generator，在工作时会自动调用在此定义的生命周期函数
在这些生命周期函数中，可以自定义一些功能，列如文件写入
*/

const Generator = require('yeoman-generator')
/**
 * 生成模板示例
 */
// module.exports = class extends Generator {
//   writing () {//yeoman-generator的生命周期函数,填充预置模板
//     // this.fs.write(//相比于node的fs模块更能更加强大
//     //     this.destinationPath('temp.txt'),//文件名
//     //     Math.random().toString()//文件内容
//     // )

//     //通过模板文件方式写入到目标目录
//     const tempurl = this.templatePath('foo.txt')//模板路径
//     const output = this.destinationPath('foo.txt')//输出的路径
//     const context = { title: 'holle every one', success: true }//模块数据上下文
//     this.fs.copyTpl(tempurl, output, context)
//   }
// }


/**
 * 接收用户输入生成模板
 */
// module.exports = class extends Generator {
//   prompting () {//调用父类的prompt()方法发出对用户的命令询问
//     return this.prompt({
//       type: 'input',//用户输入方式，接收用户信息
//       name: 'name',//得到结果的键
//       message: 'your project name',//用户输入时的提示
//       default: this.appname//父类提供类了appname属性，是当前目录下文件夹的名字。作为当前输入默认值
//     }).then(answers => this.answers = answers)//获取用户输入结果
//   }
//   writing () {
//     const tempurl = this.templatePath('bar.html')//模板路径
//     const output = this.destinationPath('bar.html')//输出的路径
//     const context = this.answers//模块数据上下文
//     this.fs.copyTpl(tempurl, output, context)
//   }
// }



/**
 * 把整个项目作为模板
 */
module.exports = class extends Generator {
  prompting () {//调用父类的prompt()方法发出对用户的命令询问
    return this.prompt({
      type: 'input',//用户输入方式，接收用户信息
      name: 'name',//得到结果的键
      message: 'your project name',//用户输入时的提示
      default: this.appname//父类提供类了appname属性，是当前目录下文件夹的名字。作为当前输入默认值
    }).then(answers => this.answers = answers)//获取用户输入结果
  }
  writing () {
    const tempaltes=[
      'Park-Overview/public/favicon.ico',
      'Park-Overview/src/assets/img/background.png',
      'Park-Overview/src/assets/img/fireExtinguisher4A.png',
      'Park-Overview/src/assets/logo.png',
      'Park-Overview/src/components/ParkSvg.vue',
      'Park-Overview/src/App.vue',
      'Park-Overview/src/main.ts',
      'Park-Overview/src/shims-vue.d.ts',
      'Park-Overview/.gitignore',
      'Park-Overview/index.html',
      'Park-Overview/package.json',
      'Park-Overview/README.md',
      'Park-Overview/package.json',
      'Park-Overview/vite.config.ts'
    ]
    tempaltes.forEach(item=>{
      this.fs.copyTpl(
        this.templatePath(item),
        this.destinationPath(item),
        this.answers
      )
    })
  }
}
